package com.lcj.dr.db.dao;


import com.lcj.dr.controller.form.UpdateDriverHomeForm;
import com.lcj.dr.controller.form.UpdatePhoneForm;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author lcj
 */
public interface DriverDao {

    /**
     * 查询司机openId
     * @param driverId
     * @return
     */
    String searchDriverOpenId(long driverId);

    /**
     * 登录
     * @param openId
     * @return
     */
    public HashMap login(String openId);
    /**
     * 注册新司机
     * @param map
     * @return
     */
    public int registerNewDriver(Map map);

    /**
     * 判断是否有存在司机
     * @param map
     * @return
     */
    public long hasDriver(Map map);

    /**
     * 根据OpenId查询司机uuid
     * @param openId
     * @return
     */
    public String searchDriverId(String openId);

    /**
     * 更新司机信息
     * @param map
     * @return
     */
    public int updateDriverAuth(Map map);

    /**
     * 查询司机姓名性别
     * @param driverId
     * @return
     */
    public HashMap searchDriverNameAndSex(long driverId);

    /**
     * 更新司机archive字段
     * @param driverId
     * @return
     */
    public int updateDriverArchive(long driverId);

    /**
     * 查询司机信息
     * @param driverId
     * @return
     */
    public HashMap searchDriverBaseInfo(long driverId);

    /**
     * 分页查询司机数据
     * @param param
     * @return
     */
    public ArrayList<HashMap> searchAllDriver(Map param);

    /**
     * 查询司机数据数量
     * @param param
     * @return
     */
    public long searchDriverCount(Map param);

    /**
     * 查询司机实名认证信息
     * @param driverId
     * @return
     */
    public HashMap searchDriverAuth(long driverId);

    /**
     * 查询司机信息
     * @param driverId
     * @return
     */
    public HashMap searchDriverRealSummary(long driverId);

    /**
     * 查询司机是否已完成实名认证
     * @param driverId
     * @return
     */
    public Integer searchDriverIsRealAuth(long driverId);

    /**
     * 更新司机认证信息
     * @param param
     * @return
     */
    public int updateDriverRealAuth(Map param);

    /**
     * 查询司机简明信息(id,name,tel)
     * @param driverId
     * @return
     */
    HashMap searchDriverBriefInfo(long driverId);

    /**
     * 统计同电话数量
     * @param phone
     * @return
     */
    List<Long> countDriverByPhone(String phone);

    /**
     * 更新司机电话
     * @param form
     * @return
     */
    Integer updateDriverPhone(UpdatePhoneForm form);

    /**
     * 更新司机家
     * @param form
     * @return
     */
    Integer updateDriverHome(UpdateDriverHomeForm form);

    /**
     * 查询司机家地址
     * @param driverId
     * @return
     */
    String searchDriverHome(long driverId);
}




